package com.hw.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hw.shortlink.project.dto.req.ShortLinkAccessRecordReqDto;
import com.hw.shortlink.project.dto.req.ShortLinkGroupAccessRecordReqDto;
import com.hw.shortlink.project.dto.req.ShortLinkGroupStatsReqDto;
import com.hw.shortlink.project.dto.req.ShortLinkStatsReqDto;
import com.hw.shortlink.project.dto.resp.ShortLinkAccessRecordRespDto;
import com.hw.shortlink.project.dto.resp.ShortLinkGroupAccessRecordRespDto;
import com.hw.shortlink.project.dto.resp.ShortLinkGroupStatsRespDto;
import com.hw.shortlink.project.dto.resp.ShortLinkStatsRespDto;

public interface ShortLinkStatsService {

    /**
     * 获取单个短链接的监控信息
     * @param shortLinkStatsReqDto
     * @return
     */
    ShortLinkStatsRespDto getStatsForSingleUrl(ShortLinkStatsReqDto shortLinkStatsReqDto);

    /**
     * 查询某个分组总的监控信息
     * @param shortLinkGroupStatsReqDto
     * @return
     */
    ShortLinkGroupStatsRespDto getStatsForGroup(ShortLinkGroupStatsReqDto shortLinkGroupStatsReqDto);

    /**
     * 分页查询某个短链接的访问记录
     * @param shortLinkAccessRecordReqDto
     * @return
     */
    IPage<ShortLinkAccessRecordRespDto> linkPageQuery(ShortLinkAccessRecordReqDto shortLinkAccessRecordReqDto);

    /**
     * 分页查询分组的访问记录
     * @param shortLinkAccessRecordReqDto
     * @return
     */
    IPage<ShortLinkGroupAccessRecordRespDto> groupPageQuery(ShortLinkGroupAccessRecordReqDto shortLinkGroupAccessRecordReqDto);
}
